package com.soar.tbox.protocol;

import java.io.IOException;
import java.net.UnknownHostException;

import com.soar.tbox.ActionListener;
import com.soar.tbox.CommandFactory;
import com.soar.tbox.CommandStorage;
import com.soar.tbox.DisplayHandler;
import com.soar.tbox.Messenger;
import com.soar.tbox.bean.Command;
import com.soar.tbox.util.Converts;
import com.soar.tbox.util.LogUtil;
import com.soar.tbox.util.SettingHelper;

/**
 * T-Box激活业务
 * 
 * @author songjunjie
 * 
 */
public class Protocol0101 implements Protocol {

	/**
	 * 指令名
	 */
	private static final String NAME = "0101";

	public Protocol0101() {
	}

	/**
	 * @see com.soar.tbox.protocol.Protocol#handle()
	 */
	@Override
	public void handle() {
		// 用户指定了激活码，替换在配置文件中配置的。
		// SettingHelper.getSetting().put("vin_no", vin);
		try {
			// 重新加载配置文件中的指令，使用新的激活码
			// CommandFactory.load();
			// 得到激活指令数据
			Command reqCommand = CommandStorage.getCommand(NAME);
			Messenger messenger = new Messenger();
			DisplayHandler.show("发送激活码");
			Command respCommand = messenger.send(reqCommand, true);
			byte statusFlag = respCommand.getStatusFlag();
			if (statusFlag == 0x00) {
				DisplayHandler.show("激活成功");
			} else {
				DisplayHandler.show("激活失败");
			}
		} catch (UnknownHostException e) {
			DisplayHandler.show("激活时发生异常，服务器地址不正确\n" + e.getMessage());
			e.printStackTrace();
			LogUtil.error("激活时发生异常，服务器地址不正确", e);
		} catch (IOException e) {
			DisplayHandler.show("激活时发生异常，与网关通讯时发生错误\n"+ e.getMessage());
			e.printStackTrace();
			LogUtil.error("激活时发生异常，与网关通讯时发生错误", e);
		} catch (Exception e) {
			e.printStackTrace();
			DisplayHandler.show("激活时发生异常\n" + e.getMessage());
			LogUtil.error("激活时发生异常", e);
		}
	}
}
